package com.neusoft.hifly.commons.database.vo;

import java.io.Serializable;

import org.apache.commons.lang3.StringUtils;

/**
 * Title: 核心类库
 * <p>
 * Description: 数量列对象
 * <p>
 * Copyright: 2019
 * <p>
 * Company: 东软汉枫
 *
 * @author lh_neu
 * @version 1.0.2
 */
public class Field implements Serializable {
	private static final long serialVersionUID = 8090996782766285194L;
	// tables表id
	protected long tableId;
	// 表名
	protected String tableName;
	// 名称(notes)
	protected String dataName;
	// 编码(name)(小写)
	protected String dataCode;
	// 字段类型(data type)
	protected String dataType;
	// 字段宽度(length or precision)
	protected int dataLength;
	// 十进位宽度(scale)
	protected int dataPrecision;
	// 是否主键（默认0否、1是）(not null)
	protected String dataIsPrimaryKey;
	// 是否允许为空（默认0否、1是）(not null)
	protected String dataIsNull;
	// 是否唯一约束（默认0否、1是）(unique)
	protected String dataIsUnique;
	// 是否索引（默认0否、1是）(index)
	protected String dataIsIndex;
	// 是否加密（默认0否，1是）
	protected String dataIsEncrypt;
	// 默认值(default)
	protected String dataDefault;
	// 备注(comment)
	protected String dataMemo;
	//验证方式(显示名称)
	protected String scriptName;
	//验证方式编码
	protected String scriptType;

	/**
	 * 只有特殊类型才有十进制位
	 *
	 * @author lh_neu
	 * @date 2013-12-16 下午05:25:07
	 * @return 十进制位
	 */
	public int getDataPrecision() {
		if (",decimal,double,double precision,numeric,real,number,"
				.indexOf("," + StringUtils.upperCase(this.dataType) + ",") >= 0) {
			return dataPrecision;
		} else {
			return -1;
		}

	}

	public long getTableId() {
		return tableId;
	}

	public void setTableId(final long tableId) {
		this.tableId = tableId;
	}

	public String getTableName() {
		return tableName;
	}

	public void setTableName(final String tableName) {
		this.tableName = tableName;
	}

	public String getDataName() {
		return dataName;
	}

	public void setDataName(final String dataName) {
		this.dataName = dataName;
	}

	public String getDataCode() {
		return StringUtils.upperCase(dataCode);
	}

	public void setDataCode(final String dataCode) {
		this.dataCode = dataCode;
	}

	public String getDataType() {
		return dataType;
	}

	public void setDataType(final String dataType) {
		this.dataType = dataType;
	}

	public int getDataLength() {
		return dataLength;
	}

	public void setDataLength(final int dataLength) {
		this.dataLength = dataLength;
	}

	public void setDataPrecision(final int dataPrecision) {
		this.dataPrecision = dataPrecision;
	}

	public String getDataIsPrimaryKey() {
		return dataIsPrimaryKey;
	}

	public void setDataIsPrimaryKey(final String dataIsPrimaryKey) {
		this.dataIsPrimaryKey = dataIsPrimaryKey;
	}

	public String getDataIsNull() {
		return dataIsNull;
	}

	public void setDataIsNull(final String dataIsNull) {
		this.dataIsNull = dataIsNull;
	}

	public String getDataIsUnique() {
		return dataIsUnique;
	}

	public void setDataIsUnique(final String dataIsUnique) {
		this.dataIsUnique = dataIsUnique;
	}

	public String getDataIsIndex() {
		return dataIsIndex;
	}

	public void setDataIsIndex(final String dataIsIndex) {
		this.dataIsIndex = dataIsIndex;
	}

	public String getDataIsEncrypt() {
		return dataIsEncrypt;
	}

	public void setDataIsEncrypt(final String dataIsEncrypt) {
		this.dataIsEncrypt = dataIsEncrypt;
	}

	public String getDataDefault() {
		return dataDefault;
	}

	public void setDataDefault(final String dataDefault) {
		this.dataDefault = dataDefault;
	}

	public String getDataMemo() {
		return dataMemo;
	}

	public void setDataMemo(final String dataMemo) {
		this.dataMemo = dataMemo;
	}

	public String getScriptName() {
		return scriptName;
	}

	public void setScriptName(final String scriptName) {
		this.scriptName = scriptName;
	}

	public String getScriptType() {
		return scriptType;
	}

	public void setScriptType(final String scriptType) {
		this.scriptType = scriptType;
	}

}
